import UIKit

@available(iOS 8.0, *)
extension QKC where AA :UIPopoverPresentationController {
     open func delegate_qk_s(_ delegate:  UIPopoverPresentationControllerDelegate?) -> QKC<AA,YY,ZZ, UIPopoverPresentationControllerDelegate?>{
		return link(next: delegate).then_QK { $0.value.delegate = delegate }
	}
     open func delegate_qk_g() -> QKC<AA,YY,ZZ, UIPopoverPresentationControllerDelegate?>{
		 self +^ self.value.delegate
	}

    open func permittedArrowDirections_qk_s(_ permittedArrowDirections:  UIPopoverArrowDirection) -> QKC<AA,YY,ZZ, UIPopoverArrowDirection>{
		return link(next: permittedArrowDirections).then_QK { $0.value.permittedArrowDirections = permittedArrowDirections }
	}
    open func permittedArrowDirections_qk_g() -> QKC<AA,YY,ZZ, UIPopoverArrowDirection>{
		 self +^ self.value.permittedArrowDirections
	}

    open func sourceView_qk_s(_ sourceView:  UIView?) -> QKC<AA,YY,ZZ, UIView?>{
		return link(next: sourceView).then_QK { $0.value.sourceView = sourceView }
	}
    open func sourceView_qk_g() -> QKC<AA,YY,ZZ, UIView?>{
		 self +^ self.value.sourceView
	}

	// The default value in iOS 13.2 is CGRectNull. Prior to iOS 13.2, the default value was CGRectZero.
    open func sourceRect_qk_s(_ sourceRect:  CGRect) -> QKC<AA,YY,ZZ, CGRect>{
		return link(next: sourceRect).then_QK { $0.value.sourceRect = sourceRect }
	}
    open func sourceRect_qk_g() -> QKC<AA,YY,ZZ, CGRect>{
		 self +^ self.value.sourceRect
	}

	// When this is set to YES, popovers with more content than available space are allowed to overlap the source view rect in order to accommodate the content.
    @available(iOS 9.0, *)
    open func canOverlapSourceViewRect_qk_s(_ canOverlapSourceViewRect:  Bool) -> QKC<AA,YY,ZZ, Bool>{
		return link(next: canOverlapSourceViewRect).then_QK { $0.value.canOverlapSourceViewRect = canOverlapSourceViewRect }
	}
    @available(iOS 9.0, *)
    open func canOverlapSourceViewRect_qk_g() -> QKC<AA,YY,ZZ, Bool>{
		 self +^ self.value.canOverlapSourceViewRect
	}

    open func barButtonItem_qk_s(_ barButtonItem:  UIBarButtonItem?) -> QKC<AA,YY,ZZ, UIBarButtonItem?>{
		return link(next: barButtonItem).then_QK { $0.value.barButtonItem = barButtonItem }
	}
    open func barButtonItem_qk_g() -> QKC<AA,YY,ZZ, UIBarButtonItem?>{
		 self +^ self.value.barButtonItem
	}

	// Returns the direction the arrow is pointing on a presented popover. Before presentation, this returns UIPopoverArrowDirectionUnknown.
    open func arrowDirection_qk_g() -> QKC<AA,YY,ZZ, UIPopoverArrowDirection >{
		 self +^ self.value.arrowDirection
	}

	// while the popover is up.
    open func passthroughViews_qk_s(_ passthroughViews:  [UIView]?) -> QKC<AA,YY,ZZ, [UIView]?>{
		return link(next: passthroughViews).then_QK { $0.value.passthroughViews = passthroughViews }
	}
    open func passthroughViews_qk_g() -> QKC<AA,YY,ZZ, [UIView]?>{
		 self +^ self.value.passthroughViews
	}

	// Set popover background color. Set to nil to use default background color. Default is nil.
     open func backgroundColor_qk_s(_ backgroundColor:  UIColor?) -> QKC<AA,YY,ZZ, UIColor?>{
		return link(next: backgroundColor).then_QK { $0.value.backgroundColor = backgroundColor }
	}
     open func backgroundColor_qk_g() -> QKC<AA,YY,ZZ, UIColor?>{
		 self +^ self.value.backgroundColor
	}

	// is always in the upper-left of the device. This may require insets to change on device rotation.
    open func popoverLayoutMargins_qk_s(_ popoverLayoutMargins:  UIEdgeInsets) -> QKC<AA,YY,ZZ, UIEdgeInsets>{
		return link(next: popoverLayoutMargins).then_QK { $0.value.popoverLayoutMargins = popoverLayoutMargins }
	}
    open func popoverLayoutMargins_qk_g() -> QKC<AA,YY,ZZ, UIEdgeInsets>{
		 self +^ self.value.popoverLayoutMargins
	}

	// and which implements the required instance and class methods on that class.
    open func popoverBackgroundViewClass_qk_s(_ popoverBackgroundViewClass:  UIPopoverBackgroundViewMethods.Type?) -> QKC<AA,YY,ZZ, UIPopoverBackgroundViewMethods.Type?>{
		return link(next: popoverBackgroundViewClass).then_QK { $0.value.popoverBackgroundViewClass = popoverBackgroundViewClass }
	}
    open func popoverBackgroundViewClass_qk_g() -> QKC<AA,YY,ZZ, UIPopoverBackgroundViewMethods.Type?>{
		 self +^ self.value.popoverBackgroundViewClass
	}

}

